var $proMainTree;
var $proTypeTable;
/**
 * 页面加载函数
 * Main
 */
$(function(){
    //项目大类信息列表
    proMainType.initTree();
    //初始化项目大类工具按钮
    proMainType.initToolbar();
    //初始化项目分类列表
    proType.initTable();
    //初始化工具按钮
    proType.initToolbar();
    //初始化扩展字段按钮
    proStep.initToolbar();
    //获取安工院组织机构树信息
    $.ajax({
        type: 'post',
        url: '/systemRoleMenu/menuTreeInfo',
        async: false,
        dataType: 'json',
        success: function (result) {
            oTableInit.agyOrgTreeData = result.data;
        }
    });
    //项目分类-新增-组织机构input点击事件
    $('#orgText').click(function () {
        //初始化安工院组织机构树
        oTableInit.agyOrgTreeInit();
        $("#agyOrgModal").modal("show");
        //$('#treeview')[0].style.display = 'block';
    });
});

var oTableInit = new Object();
//用于缓存 安工院组织机构树信息
oTableInit.agyOrgTreeData;
//用于缓存 安工院组织机构树节点信息
oTableInit.agyOrgTreeNodeData;
//初始化表格
oTableInit.Init = function(){
    $('#typeTable').bootstrapTable({
        url: '/pro/type/list',
        method: 'get',                      // 请求方式（*）
        toolbar: '#toolbar',                // 工具按钮用哪个容器
        striped: true,                      // 是否显示行间隔色
        cache: false,                       // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: false,                   // 是否显示分页（*）
        //sortable: true,                     // 是否启用排序
        //sortOrder: "asc",                   // 排序方式
        // queryParams: oTableInit.queryParams,//传递参数（*）
        sidePagination: "server",           // 分页方式：client客户端分页，server服务端分页（*）
        // pageNumber: 1, //初始化加载第一页，默认第一页
        // pageSize: 10, //每页的记录行数（*）
        // pageList: [10, 25, 50, 100], //可供选择的每页的行数（*）
        // search: true, //是否显示表格搜索，此搜索是客户端搜索，不会进服务端
        contentType: "application/x-www-form-urlencoded",
        strictSearch: true,
        showColumns: true,                  // 是否显示所有的列
        showRefresh: false,                  // 是否显示刷新按钮
        // minimumCountColumns: 2, //最少允许的列数
        clickToSelect: true,                // 是否启用点击选中行
        // height: auto', //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
        uniqueId: "id",                     // 每一行的唯一标识，一般为主键列
        showToggle: true,                    // 是否显示详细视图和列表视图的切换按钮
        cardView: false,                    // 是否显示详细视图
        detailView: false,                   // 是否显示父子表
        columns: [
            {
                field: 'sort',
                title: '序号'
            },
            {
                field: 'id',
                title: '主键',
                visible:false
            },
            {
                field: 'name',
                title: '项目分类名称'
            },
            {
                field: 'code',
                title: '项目大类',
                visible:false
            },
            {
                field: 'orgid',
                title: '组织机构id'
            },
            {
              field: 'isyes',
              title: '是否有效'
            },
            {
              field: 'remark',
              title: '备注'
            },
            {
                field: 'isstage',
                title: '项目是否分段',
                visible:false
            },
            {
                field: 'isstage',
                title: '分段含义',
                visible:false
            },
            {
                field: 'registerUserid',
                title: '登记人',
                visible:false
            },
            {
                field: 'registerDept',
                title: '登记时间',
                visible:false
            }
        ]
    });
};
oTableInit.selectInit = function () {
    $.ajax({
        type: 'post',
        url: '/projectsteptype/getDcDocProjectStepType',
        async: false,
        traditional: true,
        dataType: 'json',
        success: function (result) {
            var str;
            for (var i = 0; i < result.data.length; i++){
                str += '<option value="'+ result.data[i].id +'">'+ result.data[i].projectstepname +'</option>'
            }
            $(".selectpicker").html(str);
            $('.selectpicker').selectpicker('refresh');//动态刷新
        }
    });
};
oTableInit.agyOrgTreeInit = function () {
    $('#treeview').treeview({
        highlightSelected: true,//当选择节点时是否高亮显示。
        showBorder: true,//是否在节点上显示边框。
        showImage: true,
        levels:1,
        showIcon:true,
        data: oTableInit.agyOrgTreeData,
        onNodeSelected: function (event, data) {
            oTableInit.agyOrgTreeNodeData = data;
            $('#orgText').val(oTableInit.agyOrgTreeNodeData.text);
            $('#orgId').val(oTableInit.agyOrgTreeNodeData.id);
            $('#agyOrgModal').modal('hide').on('hidden.bs.modal', function() {
                $('#typeModal').css({'overflow-y':'scroll'});
            });
        }
    });
};
var proType={
    initTable: function(){
        oTableInit.Init();
    },
    search:function(){
        var select = $("#mainTypeTree").treeview("getSelected");
        if(select.length == 0){
           return;
        }
        $("#typeTable").bootstrapTable("refresh",{query: {id:select[0].id,name:$("#name").val()}});
    },
    initToolbar:function(){
        var add = window.document.getElementById("add");
        var edit = window.document.getElementById("edit");
        var del = window.document.getElementById("del");
        add.onclick=function(){
            var select = $("#mainTypeTree").treeview("getSelected");
            if(select.length == 0){
                layer.msg("请先选择项目大类");
                return;
            }
            $('form[id=typeForm] label.error').remove();//清空验证信息
            //清空表单
            $(':input','#typeForm')
                .not(':button, :submit, :reset')
                .val('')
                .removeAttr('checked')
                .removeAttr('selected');
            oTableInit.selectInit();
            $("#typeModal").modal("show");
        },
        edit.onclick = function(){
            layer.msg("修改#待开发");
        },
        del.onclick = function(){
            layer.msg("删除#待开发");
        }
     },
    nextStep:function(){
       if($('#typeForm').valid()){
           //第一步：将表单数据保存到数据库中
           $.ajax({
               url: '/pro/type/entity',
               type: 'POST',
               async:false,
               data:$('#typeForm').serialize(),
               success: function (data) {
                   $("#typeModal").modal("hide");
               },
               error: function () {
                   layer.msg('保存失败！');
                   return;
               }
           });
           //第二步：根据阶段类型ID加载项目阶段树并且打开模态框
           $.ajax({
               type: 'get',
               url: '/pro/stage/selectProjectStepByStepTypeId',
               async: false,
               data:{stepTypeId:$('#select').val()},
               dataType: 'json',
               success: function (result) {
                   $('#projectStepTree').treeview({
                       highlightSelected: true,
                       showBorder: true,
                       showImage: true,
                       showIcon:true,
                       data: result.data,
                       onNodeSelected: function (event, data) {

                       }
                   });
                   //解决在模态框打开的情况下打开另一个模态框之后无滚动条的问题
                   $("#stepModal").modal("show").on('show.bs.modal', function () {
                       $('#typeModal').css({'overflow-y':'scroll'});
                   });
               }
           });
       }
    }
};

var proMainType={
    save: function(name,sort){
        if($("#myFormAdd").valid()){
            if($('#id').val() == ""){//新增
                $.ajax({
                    url: '/pro/maintype/entity',
                    type: 'POST',
                    async:false,
                    data: { name : $("#mainTypeName").val() },
                    success: function (data) {
                        if(data.success == true){
                            layer.msg('保存成功！');
                            $("#myModalAdd").modal('hide');
                            proMainType.initTree();
                        }
                    },
                    error: function (e,i,r) {
                        layer.msg('保存失败！');
                    }
                });
            }else{//修改
                $.ajax({
                    url: '/pro/maintype/entity?id='+$('#id').val()+"&name="+$("#mainTypeName").val(),
                    type: 'PUT',
                    async:false,
                    success: function (data) {
                        if(data.success == true){
                            layer.msg('修改成功！');
                            $("#myModalAdd").modal('hide');
                            proMainType.initTree();

                        }
                    },
                    error: function (e,i,r) {
                        layer.msg('修改失败！');
                    }
                });
            }
        }
    },
    addTreeFun: function(){//新增按钮
        $('form[id=myFormAdd] label.error').remove();//清空验证信息
        //清空表单
        $(':input','#myFormAdd')
            .not(':button, :submit, :reset')
            .val('')
            .removeAttr('checked')
            .removeAttr('selected');
       $("#myModalAdd").modal('show');
    },
    editTreeFun: function () {
        var select = $("#mainTypeTree").treeview("getSelected");
        if(select.length == 0){
            layer.msg("请选择要修改的树节点！");
        }
        proMainType.addTreeFun();
        $("#id").val(select[0].id);
        $("#mainTypeName").val(select[0].text);
    },
    delTreeFun: function () {//编辑按钮
        var select = $("#mainTypeTree").treeview("getSelected");
        if(select.length == 0){
            layer.msg("请选择要删除的树节点！");
        }
        $.ajax({
            url: '/pro/maintype/entity?id='+select[0].id,
            type: 'DELETE',
            dataType: 'json',
            async:false,
            success: function (data) {
                if(data.success == true){
                    layer.msg("删除成功");
                    proMainType.initTree();
                }else{
                    layer.msg(data.message);
                }
            },
            error: function(e,i,r){
                layer.msg('树节点加载失败');
            }
        });
    },
    initToolbar:function(){
       var addTree = window.document.getElementById('addTree');
       var editTree = window.document.getElementById('editTree');
       var delTree = window.document.getElementById('delTree');
       //绑定点击事件
       addTree.onclick = function () {
           proMainType.addTreeFun()
       };
       editTree.onclick = function () {
           proMainType.editTreeFun()
       };
       delTree.onclick = function () {
           proMainType.delTreeFun()
       };
   },
    treeFormat: function(data){
        $('#mainTypeTree').treeview({
            data: data,
            highlightSelected: true,//当选择节点时是否高亮显示。
            showBorder: true,//是否在节点上显示边框。
            showImage: true,
            showIcon:true,
            onNodeSelected: function (event, data) {
                $("#typeTable").bootstrapTable("refresh",{query: {id:data.id}});
            }
        });
    },
    initTree: function(){
        //树节点初始化
        $.ajax({
            url: '/pro/maintype/tree',
            type: 'GET',
            dataType: 'json',
            success: function (data) {
                proMainType.treeFormat(data);
            },
            error: function(e,i,r){
                layer.msg('树节点加载失败');
            }
        });
    },
};

var proStep = {
    _addShowWin : function(){
        var stepTreeNode;
        //第一步获取项目阶段树上被选择的节点判断个数<1。true：提示选择并结束方法 false：业务操作
        stepTreeNode = $('#projectStepTree').treeview('getSelected');
        if(stepTreeNode.length<1){
            alert("您好，请先选择项目阶段")
            return;
        }else{
        //第二步打开文档类型模态框并清空表单
            $("#expandWin").modal('show');
            $(':input','#fileTypeForm')
                .not(':button, :submit, :reset')
                .val('')
                .removeAttr('checked')
                .removeAttr('selected');
        };
    },
    initToolbar : function () {
        var addExpandTool = document.getElementById('addExpand');
        addExpandTool.onclick = function () {
            proStep._addShowWin();
        }
    }
};
